package api

// // CreateDonation 创建捐款
// func CreateDonation(c *gin.Context) {
// 	userID := c.GetUint64("user_id")

// 	var req struct {
// 		ProjectID     uint64  `json:"project_id" binding:"required"`
// 		Amount        float64 `json:"amount" binding:"required,gt=0"`
// 		PaymentMethod int8    `json:"payment_method" binding:"required,oneof=1 2"`
// 		Message       string  `json:"message"`
// 		IsAnonymous   bool    `json:"is_anonymous"`
// 	}

// 	if err := c.ShouldBindJSON(&req); err != nil {
// 		c.JSON(http.StatusBadRequest, gin.H{
// 			"code": 400,
// 			"msg":  "参数错误",
// 		})
// 		return
// 	}

// 	donation := &model.Donation{
// 		UserID:        userID,
// 		ProjectID:     req.ProjectID,
// 		Amount:        req.Amount,
// 		PaymentMethod: req.PaymentMethod,
// 		Message:       req.Message,
// 		IsAnonymous:   req.IsAnonymous,
// 	}

// 	// 创建捐款记录并生成支付订单
// 	orderNo, err := service.CreateDonation(donation)
// 	if err != nil {
// 		c.JSON(http.StatusInternalServerError, gin.H{
// 			"code": 500,
// 			"msg":  "创建捐款失败",
// 			"data": err.Error(),
// 		})
// 		return
// 	}

// 	c.JSON(http.StatusOK, gin.H{
// 		"code": 200,
// 		"msg":  "创建成功",
// 		"data": gin.H{
// 			"order_no": orderNo,
// 			// 返回支付所需参数
// 		},
// 	})
// }

// // GetDonation 获取捐款详情
// func GetDonation(c *gin.Context) {
// 	userID := c.GetUint64("user_id")
// 	donationID, _ := strconv.ParseUint(c.Param("id"), 10, 64)

// 	donation, err := service.GetDonationDetail(donationID)
// 	if err != nil {
// 		c.JSON(http.StatusInternalServerError, gin.H{
// 			"code": 500,
// 			"msg":  "获取捐款详情失败",
// 		})
// 		return
// 	}

// 	// 检查权限：只能查看自己的捐款或项目发起人可查看
// 	if donation.UserID != userID && !service.CheckProjectOwner(donation.ProjectID, userID) {
// 		c.JSON(http.StatusForbidden, gin.H{
// 			"code": 403,
// 			"msg":  "无权限查看",
// 		})
// 		return
// 	}

// 	c.JSON(http.StatusOK, gin.H{
// 		"code": 200,
// 		"msg":  "success",
// 		"data": donation,
// 	})
// }

// // ListMyDonations 我的捐款列表
// func ListMyDonations(c *gin.Context) {
// 	userID := c.GetUint64("user_id")
// 	page, _ := strconv.Atoi(c.DefaultQuery("page", "1"))
// 	pageSize, _ := strconv.Atoi(c.DefaultQuery("page_size", "10"))

// 	// 支持按状态筛选
// 	status, _ := strconv.Atoi(c.DefaultQuery("status", "-1"))
// 	// 支持按时间范围筛选
// 	startTime := c.Query("start_time")
// 	endTime := c.Query("end_time")

// 	query := &service.DonationQuery{
// 		UserID:    userID,
// 		Status:    int8(status),
// 		StartTime: startTime,
// 		EndTime:   endTime,
// 		Page:      page,
// 		PageSize:  pageSize,
// 	}

// 	donations, total, err := service.ListUserDonations(query)
// 	if err != nil {
// 		c.JSON(http.StatusInternalServerError, gin.H{
// 			"code": 500,
// 			"msg":  "获取捐款列表失败",
// 		})
// 		return
// 	}

// 	// 计算统计信息
// 	stats, err := service.GetUserDonationStats(userID)
// 	if err != nil {
// 		c.JSON(http.StatusInternalServerError, gin.H{
// 			"code": 500,
// 			"msg":  "获取统计信息失败",
// 		})
// 		return
// 	}

// 	c.JSON(http.StatusOK, gin.H{
// 		"code": 200,
// 		"msg":  "success",
// 		"data": gin.H{
// 			"list":  donations,
// 			"total": total,
// 			"page":  page,
// 			"size":  pageSize,
// 			"stats": stats,
// 		},
// 	})
// }
